home *** CD-ROM | disk | FTP | other *** search
/ 100 Plus Great Games 2 / 100PLUSV2.BIN / games / TroyReturns.dxr / 00002_Graphics Handlers.ls < prev    next >
Encoding:
Text File  |  2002-01-31  |  6.5 KB  |  178 lines

  1. on initializeBackground
  2.   bWidth = 145
  3.   repeat with wBG = 1 to 5
  4.     wSprite = wBG + 10
  5.     set the loc of sprite wSprite to point((bWidth * wBG) - bWidth, 440)
  6.   end repeat
  7. end
  8.  
  9. on updateParalaxBG
  10.   global playerViewpoint, paralaxBgData
  11.   bWidth = 145
  12.   repeat with wBG = 1 to 5
  13.     whichBlock = (((playerViewpoint[1] / 2 / bWidth) + wBG + 10) mod 30) + 1
  14.     wSprite = wBG + 10
  15.     set the locH of sprite wSprite to (bWidth * wBG) - bWidth - (playerViewpoint[1] / 2 mod bWidth)
  16.     set the member of sprite wSprite to "Fish BG " & string(paralaxBgData[whichBlock])
  17.   end repeat
  18. end
  19.  
  20. on initializeScreen
  21.   global terrainSO, screenDimensions, screenTileSize, playerViewpoint
  22.   maxX = screenDimensions[1]
  23.   maxY = screenDimensions[2]
  24.   viewOff = point(playerViewpoint[1] mod screenTileSize, playerViewpoint[2] mod screenTileSize)
  25.   wTile = 0
  26.   repeat with whichY = 1 to maxY
  27.     repeat with whichX = 1 to maxX
  28.       wSprite = terrainSO + wTile
  29.       puppetSprite(wSprite, 1)
  30.       set the member of sprite wSprite to "Iron Block"
  31.       set the loc of sprite wSprite to point((whichX - 1) * screenTileSize, (whichY - 1) * screenTileSize) - viewOff + (screenTileSize / 2)
  32.       wTile = wTile + 1
  33.     end repeat
  34.   end repeat
  35. end
  36.  
  37. on repositionTerrain
  38.   global terrainSO, screenDimensions, screenTileSize, terrainRef, terrainData_Type, animateTilesFlag, playerViewpoint, animNumber, rumbleOffset
  39.   viewOff = point(playerViewpoint[1] mod screenTileSize, playerViewpoint[2] mod screenTileSize)
  40.   tilePointSet = playerViewpoint / screenTileSize
  41.   maxX = screenDimensions[1]
  42.   maxY = screenDimensions[2]
  43.   wTile = 0
  44.   repeat with whichY = 1 to maxY
  45.     repeat with whichX = 1 to maxX
  46.       wSprite = terrainSO + wTile
  47.       newXLoc = ((whichX - 1) * screenTileSize) - viewOff[1] + (screenTileSize / 2)
  48.       newYLoc = ((whichY - 1) * screenTileSize) - viewOff[2] + (screenTileSize / 2)
  49.       set the locH of sprite wSprite to newXLoc + rumbleOffset[1]
  50.       set the locV of sprite wSprite to newYLoc + rumbleOffset[2]
  51.       bType = terrainData_Type[whichY + tilePointSet[2]][whichX + tilePointSet[1]]
  52.       blockString = terrainRef[bType]
  53.       wSprite = terrainSO + wTile
  54.       if count(blockString[1]) = 1 then
  55.       else
  56.         if count(blockString[1]) = 1 then
  57.           set the member of sprite wSprite to blockString[1][1]
  58.         else
  59.           if blockString[4] = 1 then
  60.             frameNum = (animNumber / 3 mod count(blockString[1])) + 1
  61.             set the member of sprite wSprite to blockString[1][frameNum]
  62.           else
  63.             frameNum = (animNumber mod count(blockString[1])) + 1
  64.             set the member of sprite wSprite to blockString[1][frameNum]
  65.           end if
  66.         end if
  67.       end if
  68.       wTile = wTile + 1
  69.     end repeat
  70.   end repeat
  71. end
  72.  
  73. on checkSolidpoint pointLoc
  74.   global terrainData_Type, screenTileSize, playerViewpoint, terrainRef
  75.   tilePointSet = (pointLoc / screenTileSize) + 1
  76.   if (tilePointSet[2] >= 1) and (tilePointSet[2] <= count(terrainData_Type)) and (tilePointSet[1] >= 1) and (tilePointSet[1] <= count(terrainData_Type[1])) then
  77.     bType = terrainData_Type[tilePointSet[2]][tilePointSet[1]]
  78.   else
  79.     bType = 2
  80.   end if
  81.   return [terrainRef[bType][2], terrainRef[bType][5]]
  82. end
  83.  
  84. on punchBlock punchPoint
  85.   global terrainData_Type, screenTileSize, playerViewpoint, locksOpened, updateTextFields, terrainRef, playerInventory
  86.   tilePointSet = (punchPoint / screenTileSize) + 1
  87.   if (tilePointSet[2] >= 1) and (tilePointSet[2] <= count(terrainData_Type)) and (tilePointSet[1] >= 1) and (tilePointSet[1] <= count(terrainData_Type[1])) then
  88.     bType = terrainData_Type[tilePointSet[2]][tilePointSet[1]]
  89.   else
  90.     bType = 1
  91.   end if
  92.   if (playerInventory[2] > 0) and (terrainRef[bType][5] = 5) then
  93.     openLockNOW = 1
  94.   else
  95.     openLockNOW = 0
  96.   end if
  97.   tType = terrainRef[bType][5]
  98.   if (tType = 1) or (tType = 6) or (tType = 7) or (tType = 8) or (tType = 9) or (tType = 12) or (openLockNOW = 1) then
  99.     playSound("Break Block SFX")
  100.     terrainData_Type[tilePointSet[2]][tilePointSet[1]] = 1
  101.     rpoint = (tilePointSet * 50) - 25
  102.     addparticle(rpoint, 0, 1)
  103.     killedBlock = 0
  104.     case terrainRef[bType][5] of
  105.       1:
  106.       5:
  107.         playerInventory[2] = playerInventory[2] - 1
  108.         if updateTextFields = 1 then
  109.           member("Key Display").text = string(playerInventory[2])
  110.         end if
  111.         locksOpened = locksOpened + 1
  112.       6:
  113.         repeat with wCoin = 1 to 1
  114.           addPickup(1, 1, rpoint, point(random(7) - 4, -6 - random(12)))
  115.         end repeat
  116.       7:
  117.         repeat with wCoin = 1 to 1
  118.           addPickup(1, 2, rpoint, point(random(7) - 4, -6 - random(12)))
  119.         end repeat
  120.       8:
  121.         addPickup(1, 2, rpoint + point(15, 0), point(random(7) - 4, -6 - random(12)))
  122.         addPickup(1, 2, rpoint + point(-15, 0), point(random(7) - 4, -6 - random(12)))
  123.         addPickup(1, 2, rpoint + point(0, 0), point(random(7) - 4, -6 - random(12)))
  124.       9:
  125.         repeat with wCoin = 1 to 1
  126.           addPickup(1, 3, rpoint, point(0, 0))
  127.         end repeat
  128.       12:
  129.         addPickup(2, 1, rpoint, point(0, 0))
  130.     end case
  131.     redrawTerrainPics()
  132.     addScore(5)
  133.   end if
  134. end
  135.  
  136. on redrawTerrainPics
  137.   global terrainSO, screenDimensions, screenTileSize, terrainData_Type, playerViewpoint, tilePointSet, animNumber, terrainRef
  138.   tilePointSet = playerViewpoint / screenTileSize
  139.   maxX = screenDimensions[1]
  140.   maxY = screenDimensions[2]
  141.   wTile = 0
  142.   repeat with whichY = 1 to maxY
  143.     repeat with whichX = 1 to maxX
  144.       wSprite = terrainSO + wTile
  145.       bType = terrainData_Type[whichY + tilePointSet[2]][whichX + tilePointSet[1]]
  146.       blockString = terrainRef[bType]
  147.       if count(blockString[1]) = 1 then
  148.         set the member of sprite wSprite to blockString[1][1]
  149.       else
  150.         if blockString[4] = 1 then
  151.           frameNum = (animNumber / 3 mod count(blockString[1])) + 1
  152.           set the member of sprite wSprite to blockString[1][frameNum]
  153.         else
  154.           frameNum = (animNumber mod count(blockString[1])) + 1
  155.           set the member of sprite wSprite to blockString[1][frameNum]
  156.         end if
  157.       end if
  158.       case blockString[3] of
  159.         0:
  160.           sprite(wSprite).visible = 0
  161.         1:
  162.           sprite(wSprite).locZ = 199
  163.           set the ink of sprite wSprite to 36
  164.           sprite(wSprite).visible = 1
  165.         2:
  166.           sprite(wSprite).locZ = 201
  167.           set the ink of sprite wSprite to 36
  168.           sprite(wSprite).visible = 1
  169.         3:
  170.           sprite(wSprite).locZ = 201
  171.           set the ink of sprite wSprite to 33
  172.           sprite(wSprite).visible = 1
  173.       end case
  174.       wTile = wTile + 1
  175.     end repeat
  176.   end repeat
  177. end
  178.